交叉连接与集合
目前我们所有的实验工作,基本都围绕着单张数据表而进行,然而 ,在实际的生产环境之中,业务更多时候需要依托多张数据表的工作,这就需要我们执行一种名为“连接”的操作。
假定在 AtomGit 上面,存在有下面两张数据表,users 表(用于记录所有的用户)与 issues(用于记录在某个仓库中分配给用户的 Issue):
/* 数据表的内容经过简化 */
CREATE TABLE users (
user_id INTEGER, /* 用户 ID */
name TEXT /* 用户名称 */
);
CREATE TABLE issues (
user_id INTEGER, /* 该 Issue 被分配给的用户 */
issue_title TEXT/* Issue 的标题 */
);
初始数据如下:
/* users */
INSERT INTO users VALUES (1, 'Wen Yi');
INSERT INTO users VALUES (2, 'Li Xiao Ming');
INSERT INTO users VALUES (3, 'Zhang Fei');
INSERT INTO users VALUES (4, 'Liu Shi De');
/* issues */
INSERT INTO issues VALUES (NULL, '建议 AtomGit 支持用户投稿功能');
INSERT INTO issues VALUES (1, '建议 AtomGit 加快支持全文搜索');
INSERT INTO issues VALUES (2, '建议完善 PR 有关文档');
INSERT INTO issues VALUES (3, '建议 AtomGit 支持 svg 格式图片');
INSERT INTO issues VALUES (4, '解决 Pages 乱码问题');
INSERT INTO issues VALUES (2, '建议社区讨论面向外部开放');
INSERT INTO issues VALUES (4, '希望尽早推出 AtomGit 移动端');